草庐IT

c++ - WinAPI : Add style to combo box

全部标签

c++ - 出于性能原因替代 stdext::hash_map

我正在开发一个高性能应用程序,其中所有调用都必须合理。我有一张map,在每次交易开始时使用一次来进行我想改进的查找。map在启动时加载,之后不会改变。下面映射中的键是一个std::string但如果需要它可以更改为char数组。C或C++作为解决方案很好。typedefstdext::hash_mapsymbols_t;有没有人知道任何其他可以消除查找或更快的解决方案?提前感谢您的帮助。来自编辑的附加信息:1.hash_map目前有35万个元素。2.每个键值的长度通常在4到10个字符之间。3.从第三方API接收回调信息。回调被赋予一个符号,在进行map查找时用作键值。软件的其余部分由m

c++ - 按位操作或按位编程

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我知道按位运算符、位操作、2的补码等概念。但是当涉及到使用位操作解决问题时,我并不感兴趣。我花时间思考它们。我认为如果我查看一些关于位运算符/位操作的问题会有所帮助,但它让我更加困惑如何处理这个主题。我不是在寻找特定问题的答案,而是在解决位操作时寻找通用的方法/思维方式。谢谢。

c++ - WinAPI 双缓冲

默认的winAPI应用程序没有双缓冲。相反,它在确保只绘制需要绘制的内容方面做得非常非常好,并赋予它无缝的外观。但是,当您调整窗口大小时,整个内容都需要重新绘制,这会导致控件、选项卡背景以及有时选项卡的白色之间出现闪烁。所以我的问题是,在我的应用程序中支持双缓冲的最简单方法是什么? 最佳答案 创建一个窗口大小的位图,渲染到该位图中,完成后将其blit回窗口。您可以在现有代码中进行非常直接的就地替换。不要使用呈现到窗口中的设备上下文,而是使用呈现到位图中的设备上下文,并且只使用原始DC将位图blit回来。一定要保留位图——不要在每次绘

c++ - 使用类型转换将 C 库包装在 C++ 类中

我正在慢慢学习成为一名更好的C++程序员,目前我正在讨论为C库实现包装器的最佳方法。该库是一种压缩文件格式的包装器,可以存储各种类型的标签(char*、char、double、float、int32_t)。类型存储为uint8_t*并且有许多辅助方法可以将这些标签转换为正确的类型。例如:chartag2char(constuint8_t*v);char*tag2string(constuint8_t*v);uint32_ttag2int(constuint8_t*v);等等。我在模板方面没有太多经验,但是否值得以类似于boostprogramoptions的方式将这些方法包装在模板函数

c++ - 这行C代码是什么意思?

我正在将一些C代码转换为Delphi。谁能给我解释一下这行是什么意思?nResult=((pBuffer[0]这是上下文的其余代码:USHORTUTIL_htons(USHORThostshort){PUCHARpBuffer;USHORTnResult;nResult=0;pBuffer=(PUCHAR)&hostshort;nResult=((pBuffer[0]提前致谢博扬 最佳答案 显然(所有那些以大写形式定义的都很难阅读)这些函数正在交换占用2或4个字节的值的内部字节顺序。例如:UTIL_htons(0x1234);/*r

c++ - 在 C++ 中实现 C 标准库

假设一个操作系统/内核是用C++编写的,并且不“做”任何纯C风格的东西,而是公开建立在成熟的C++标准库之上的C标准库。这可能吗?如果不是,为什么?PS:我知道C库是“C++的一部分”,但可以说它在内部基于基于C++的实现。小更新:看来我已经激起了一场关于我的规则“允许”什么的讨论。一般来说:C标准库实现应该尽可能使用C++/Right(tm)。我主要考虑算法和在幕后作用于静态类对象。我不是真的排除任何语言特性,而是试图将重点放在健全的C++实现上。关于setjmp示例,我看不出为什么这里的有效C(将使用其他在C++C库部分中预先实现或根本不使用任何其他库函数)会违反我的“规则”。如果

c++ - 确定 c/c++ 代码中内存泄漏的工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion在unix环境下,有没有什么工具可以很方便的分析代码,并提到在代码的某些部分有可能发生内存泄漏。HPUX/AIX/Solaris

c++ - 如何从 C++ 代码暂停 FFmpeg?

我正在编写一个VisualC++程序,它有代码调用ffmpeg.exe来转换视频文件。我想知道是否可以暂停/恢复ffmpeg从C++代码转换线程?LR. 最佳答案 您需要做的就是暂停和恢复ffmpeg子进程本身。主要问题是:没有SuspendProcessAPI函数。并且没有记录在案的或安全的方法来执行此操作。唯一简单的方法是通过SuspendThread/ResumeThread。参见thisarticle关于如何做的代码项目。 关于c++-如何从C++代码暂停FFmpeg?,我们在S

c++ - 用于实时编程的低级 C/C++ 网络概念?

我对实时编程很感兴趣,虽然我觉得我对算法和数据结构了解很多,但我觉得我不太了解如何尽快将数据输入计算机以便过程。你们中的任何人都可以指点我可以在谷歌上搜索的主题,以帮助我吗?我的大部分C书籍并没有真正涉及网络,而我的C++书籍将网络视为一个基本主题。例如,在两台计算机之间创建UDP连接不会有太大问题,但您可以通过哪些方式使连接最有效?提前致谢 最佳答案 只是让你知道:RealTime意味着你对你的申请有时间限制,它并不一定意味着“快速”或“快速”或“高效”。实时运行可能需要1小时,但只要限制不超过1小时就是实时的。至于网络——它本身

c++ - 将 Matlab 数组移植到 C/C++

我正在将一个matlab程序移植到C/C++。我有几个问题,但最重要的问题之一在这里:Matlabtreatsarrayswithanydimensionsame。假设我们有这样一个函数,functionresult=f(A,B,C)result=A+2*B+C;A、B和C可以是任意维度/大小的数组。我不是C/C++专业人士,但我想这在C中并不是一项简单而干净的工作。一个想法是使用void指针将数组传递给函数。那我应该如何处理维度和数组操作(+/*)?另一个想法是使用C++类。我也许可以编写一个模板类,其中包含所有必需的数组操作,例如(*、+、>、...)。但我相信这将是一项令人筋疲力